#include <vector>
#include <iostream> 
#include <list>

using namespace std;


class Coordenada
{
public:
 int fila,columna; 
 Coordenada(int new_fila, int new_columna);
 Coordenada();
 bool operator ==(const Coordenada &a)
  {
    bool rVal = false;
    if (a.fila == fila)
      if(a.columna == columna)
        rVal = true;
    return rVal;
  }
};


class Casilla
{
public:
 int potencia;
 int costo;
 Coordenada padre;
 int nivel_padre;
 int potencia_usada;
 bool revisado;
 Casilla(int new_potencia,int new_costo, Coordenada new_padre, int new_nivel_padre, int new_potencia_usada,bool revisado_nivelk);
 Casilla(){potencia = 0;costo=-1;nivel_padre=-1;potencia_usada=0;revisado=false;}
 
};


class Tabla{
public:
  int  tamanio, fila_ini,col_ini,fila_dest,col_dest,k;
  vector< vector <vector <Casilla> > > posiciones;
  Tabla();
};

